// 从 router中 导入 静态 和动态路由
import { constantRoutes, asyncRoutes } from '@/router'

// 写出四大模块 sate
// 在全局getters里面抛出routes  全局可用.
const state = () => {
  return {
    routes: constantRoutes
  }
}
// 改变值 必经mutation 两个路由之间的 合并
const mutations = {
  setRoutes(state, otherRoutes) {
    //   两个数组 展开合并
    state.routes = [...constantRoutes, ...otherRoutes]
  }

}
// 传参menus过来筛选 然后 也要返回值
const actions = {
  // 进行数据筛选filterRoutes
  filterRoutes(context, menus) {
    const otherRoutes = asyncRoutes.filter(item => {
    //   console.log('动态路由', asyncRoutes)
    //   console.log('对照参数', menus)
      // 动态路由里面的 值 取到name children的第一个孩子
      return menus.includes(item.children[0].name)
    })
    // 拿到筛选后的数据 添加到routes里面
    context.commit('setRoutes', otherRoutes)
    return otherRoutes
  }
}
// 计算属性
const getters = {

}
// 抛出四大模块
export default {
  // 命名空间
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}
